home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / devel / lang / eiffel / smalleif.97 / se.t / SmallEiffel / bin_c / compile_to_c16.c < prev    next >
Encoding:
C/C++ Source or Header  |  1996-05-02  |  41.7 KB  |  1,668 lines

  1. /* ANSI C code generated by SmallEiffel. */
  2. /*
  3. -- SmallEiffel  -- Release (- 0.97)    --      FRANCE
  4. -- Copyright (C), 1994 - Dominique COLNET and Suzanne COLLIN 
  5. -- University Henri Poincare' - Nancy 1 - email colnet@loria.fr 
  6. -- CRIN (Centre de Recherche en Informatique de Nancy)
  7. -- FRANCE 
  8. */
  9. #include "compile_to_c.h"
  10. T0 * rT202dynamic(/*C*/T0 * a1,T0 * a2){
  11. T0 * R=NULL;
  12. T0 * _static=NULL;
  13. T0 * _sta_name=NULL;
  14. T0 * _dyn_name=NULL;
  15. _static=XrT261current_type(a2);
  16. _sta_name=XrT261name(a2);
  17. _dyn_name=rT50name_of((T50*)rT260base_class((T260*)a1),XrT58base_class(_static),_sta_name);
  18. R=rT260get_feature((T260*)a1,_dyn_name);
  19. return R;
  20. }
  21. T0 * rT202written_in(T202 *C){
  22. T0 * R=NULL;
  23. T0 * _sp=NULL;
  24. _sp=rT202start_position(C);
  25. /*IF*/if (((int)_sp)) {
  26. R=((T46*)_sp)->_base_class_name;
  27. }
  28. /*FI*/return R;
  29. }
  30. void rT202copy(T202 *C,T0 * a1){
  31. /*IF*//*AF*//*AE*/
  32. memcpy(C,a1,s[C->id]);
  33. /*FI*/}
  34. int rT202is_a(T202 *C,T0 * a1){
  35. int R=0;
  36. R=XrT58is_a(XrT58run_type((C)->_result_type),XrT58run_type(XrT68result_type(a1)));
  37. /*IF*/if (!(R)) {
  38. /*UT*/(T45*)oRBC27eh;
  39. rT45add_position(rT202start_position(C));
  40. rT202error(XrT68start_position(a1),(T0 *)ms1261);
  41. }
  42. /*FI*/return R;
  43. }
  44. void rT202make_call_1(T202 *C,T0 * a1,T0 * a2,T0 * a3){
  45. C->_target=a1;
  46. C->_feature_name=a2;
  47. C->_arguments=a3;
  48. }
  49. void rT202make(T202 *C,T0 * a1,T0 * a2,T0 * a3){
  50. T0 * _eal=NULL;
  51. /*IF*/if ((!(a1))||(!(a3))) {
  52. /*UT*/(T45*)oRBC27eh;
  53. rT45add_position(a2);
  54. rT202fatal_error((T0 *)ms305);
  55. }
  56. /*FI*/{T70 *n=((T70*)new(70));
  57. rT70make(n,/*(IRF4*/(T0 *)ms102/*)*/,a2);
  58. C->_feature_name=(T0 *)n;}
  59. {T170 *n=((T170*)new(170));
  60. /*(IRF3*/((n)->_list)=(ma(81,0,1,a3));
  61. /*)*/_eal=(T0 *)n;}
  62. rT202make_call_1(C,a1,(C)->_feature_name,_eal);
  63. }
  64. int rT201is_static(T201 *C){
  65. int R=0;
  66. /*IF*/if (XrT58is_boolean(XrT68result_type((C)->_target))) {
  67. /*IF*/if ((XrT68is_static((C)->_target))&&(XrT68is_static(rT201arg1(C)))) {
  68. R=1;
  69. C->_static_value_mem=(XrT68static_value((C)->_target))+(XrT68static_value(rT201arg1(C)));
  70. /*IF*/if (((C)->_static_value_mem)==(1)) {
  71. C->_static_value_mem=1;
  72. }
  73. else {
  74. C->_static_value_mem=0;
  75. }
  76. /*FI*/}
  77. /*FI*/}
  78. /*FI*/return R;
  79. }
  80. int rT201static_value(T201 *C){
  81. int R=0;
  82. R=(C)->_static_value_mem;
  83. return R;
  84. }
  85. void rT201fatal_error(/*C*/T0* a1){
  86. rT45fatal_error((T45*)oRBC27eh,a1);
  87. }
  88. void rT201to_runnable_0(T201 *C,T0 * a1){
  89. T0 * _rc=NULL;
  90. T0 * _t=NULL;
  91. C->_current_type=a1;
  92. _t=XrT68to_runnable((C)->_target,a1);
  93. /*IF*/if (!(_t)) {
  94. rT201error(XrT68start_position((C)->_target),(T0 *)ms1119);
  95. }
  96. else {
  97. C->_target=_t;
  98. _rc=XrT58run_class(XrT68result_type((C)->_target));
  99. C->_run_feature=rT260get_rf((T260*)_rc,(C)->_target,(C)->_feature_name);
  100. C->_result_type=XrT261result_type((C)->_run_feature);
  101. /*IF*/if (!((C)->_result_type)) {
  102. /*UT*/(T45*)oRBC27eh;
  103. rT45add_position(XrT261start_position((C)->_run_feature));
  104. rT201error(((T70*)(C)->_feature_name)->_start_position,(T0 *)ms1131);
  105. }
  106. /*FI*/}
  107. /*FI*/}
  108. T0 * rT201to_runnable(T201 *C,T0 * a1){
  109. T0 * R=NULL;
  110. T0 * _a=NULL;
  111. /*IF*/if (!((C)->_current_type)) {
  112. rT201to_runnable_0(C,a1);
  113. _a=rT170to_runnable((T170*)(C)->_arguments,a1);
  114. /*IF*/if (!(_a)) {
  115. rT201error(XrT68start_position(rT201arg1(C)),(T0 *)ms1136);
  116. }
  117. else {
  118. C->_arguments=_a;
  119. }
  120. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  121. rT170match_with((T170*)(C)->_arguments,(C)->_run_feature);
  122. }
  123. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0))&&(XrT58is_like_argument((C)->_result_type))) {
  124. C->_result_type=XrT58run_type(XrT68result_type(rT201arg1(C)));
  125. }
  126. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  127. R=(T0 *)C;
  128. }
  129. /*FI*/}
  130. else {
  131. R=rT201clone(C,(T0 *)C);
  132. /*(IRF3*/(((T201*)R)->_current_type)=(NULL);
  133. /*)*/R=rT201to_runnable((T201*)R,a1);
  134. }
  135. /*FI*/return R;
  136. }
  137. void rT201error(/*C*/T0 * a1,T0* a2){
  138. /*UT*/(T45*)oRBC27eh;
  139. rT45add_position(a1);
  140. rT45error((T45*)oRBC27eh,a2);
  141. }
  142. T0 * rT201add_comment(T201 *C,T0 * a1){
  143. T0 * R=NULL;
  144. /*IF*/if ((!(a1))||((rT59count((T59*)a1))==(0))) {
  145. R=(T0 *)C;
  146. }
  147. else {
  148. {T220 *n=((T220*)new(220));
  149. rT220make(n,(T0 *)C,a1);
  150. R=(T0 *)n;}}
  151. /*FI*/return R;
  152. }
  153. T0 * rT201arg1(T201 *C){
  154. T0 * R=NULL;
  155. R=rT170first((T170*)(C)->_arguments);
  156. return R;
  157. }
  158. T0 * rT201start_position(T201 *C){
  159. T0 * R=NULL;
  160. R=((T70*)(C)->_feature_name)->_start_position;
  161. return R;
  162. }
  163. int rT201use_current(T201 *C){
  164. int R=0;
  165. /*IF*/{/*AT*/R=rT170use_current((T170*)(C)->_arguments);
  166. }
  167. /*FI*//*IF*/if (R) {
  168. }
  169.  else if (XrT68is_current((C)->_target)) {
  170. R=XrT261use_current((C)->_run_feature);
  171. }
  172. else {
  173. R=XrT68use_current((C)->_target);
  174. }
  175. /*FI*/return R;
  176. }
  177. T0* rT201clone(T201 *C,T0* a1){
  178. T0* R=NULL;
  179. /*IF*/if (((int)a1)) {
  180. R=(T0 *)new(a1->id);
  181. AF_1
  182. XrT28copy(R,a1);
  183. AF_0
  184. }
  185. /*FI*/return R;
  186. }
  187. void rT201compile_to_c_old(T201 *C){
  188. XrT68compile_to_c_old((C)->_target);
  189. /*IF*/{/*AT*/rT170compile_to_c_old((T170*)(C)->_arguments);
  190. }
  191. /*FI*/}
  192. void rT201compile_to_c(T201 *C){
  193. T0* _n=NULL;
  194. T0 * _dyn_rf=NULL;
  195. T0 * _tt=NULL;
  196. T0* _r=NULL;
  197. _tt=XrT58run_type(XrT68result_type((C)->_target));
  198. _n=XrT67to_string(XrT261name((C)->_run_feature));
  199. /*IF*/if (rT7is_equal((T7*)(T0 *)ms1109,_n)) {
  200. rT40put_is_expanded_type((T40*)oRBC27cpp,_tt);
  201. }
  202.  else if (((XrT58is_expanded(_tt))||(XrT68is_current((C)->_target)))||(XrT68is_manifest_string((C)->_target))) {
  203. rT40push_direct((T40*)oRBC27cpp,(C)->_run_feature,(C)->_target,(C)->_arguments);
  204. XrT261mapping_c((C)->_run_feature);
  205. rT40pop((T40*)oRBC27cpp);
  206. }
  207. else {
  208. _r=((T260*)XrT58run_class(_tt))->_running;
  209. /*IF*/if (!(_r)) {
  210. rT40push_void((T40*)oRBC27cpp,(C)->_run_feature,(C)->_target,(C)->_arguments);
  211. XrT261mapping_c((C)->_run_feature);
  212. rT40pop((T40*)oRBC27cpp);
  213. }
  214.  else if ((rT263count((T263*)_r))==(1)) {
  215. _dyn_rf=rT201dynamic(rT263first((T263*)_r),(C)->_run_feature);
  216. rT40push_check((T40*)oRBC27cpp,_dyn_rf,(C)->_target,(C)->_arguments);
  217. XrT261mapping_c(_dyn_rf);
  218. rT40pop((T40*)oRBC27cpp);
  219. }
  220. else {
  221. rT40use_switch((T40*)oRBC27cpp,(C)->_run_feature,_r,(C)->_target,(C)->_arguments);
  222. }
  223. /*FI*/}
  224. /*FI*/}
  225. int rT201to_integer(T201 *C){
  226. int R=0;
  227. rT201error(rT201start_position(C),(T0 *)ms175);
  228. return R;
  229. }
  230. T0 * rT201dynamic(/*C*/T0 * a1,T0 * a2){
  231. T0 * R=NULL;
  232. T0 * _static=NULL;
  233. T0 * _sta_name=NULL;
  234. T0 * _dyn_name=NULL;
  235. _static=XrT261current_type(a2);
  236. _sta_name=XrT261name(a2);
  237. _dyn_name=rT50name_of((T50*)rT260base_class((T260*)a1),XrT58base_class(_static),_sta_name);
  238. R=rT260get_feature((T260*)a1,_dyn_name);
  239. return R;
  240. }
  241. T0 * rT201written_in(T201 *C){
  242. T0 * R=NULL;
  243. T0 * _sp=NULL;
  244. _sp=rT201start_position(C);
  245. /*IF*/if (((int)_sp)) {
  246. R=((T46*)_sp)->_base_class_name;
  247. }
  248. /*FI*/return R;
  249. }
  250. void rT201copy(T201 *C,T0 * a1){
  251. /*IF*//*AF*//*AE*/
  252. memcpy(C,a1,s[C->id]);
  253. /*FI*/}
  254. int rT201is_a(T201 *C,T0 * a1){
  255. int R=0;
  256. R=XrT58is_a(XrT58run_type((C)->_result_type),XrT58run_type(XrT68result_type(a1)));
  257. /*IF*/if (!(R)) {
  258. /*UT*/(T45*)oRBC27eh;
  259. rT45add_position(rT201start_position(C));
  260. rT201error(XrT68start_position(a1),(T0 *)ms1261);
  261. }
  262. /*FI*/return R;
  263. }
  264. void rT201make_call_1(T201 *C,T0 * a1,T0 * a2,T0 * a3){
  265. C->_target=a1;
  266. C->_feature_name=a2;
  267. C->_arguments=a3;
  268. }
  269. void rT201make(T201 *C,T0 * a1,T0 * a2,T0 * a3){
  270. T0 * _eal=NULL;
  271. /*IF*/if ((!(a1))||(!(a3))) {
  272. /*UT*/(T45*)oRBC27eh;
  273. rT45add_position(a2);
  274. rT201fatal_error((T0 *)ms305);
  275. }
  276. /*FI*/{T70 *n=((T70*)new(70));
  277. rT70make(n,/*(IRF4*/(T0 *)ms101/*)*/,a2);
  278. C->_feature_name=(T0 *)n;}
  279. {T170 *n=((T170*)new(170));
  280. /*(IRF3*/((n)->_list)=(ma(81,0,1,a3));
  281. /*)*/_eal=(T0 *)n;}
  282. rT201make_call_1(C,a1,(C)->_feature_name,_eal);
  283. }
  284. int rT200is_static(T200 *C){
  285. int R=0;
  286. /*IF*/if (XrT58is_boolean(XrT68result_type((C)->_target))) {
  287. /*IF*/if ((XrT68is_static((C)->_target))&&(XrT68is_static(rT200arg1(C)))) {
  288. R=1;
  289. C->_static_value_mem=(XrT68static_value((C)->_target))+(XrT68static_value(rT200arg1(C)));
  290. /*IF*/if (((C)->_static_value_mem)==(2)) {
  291. C->_static_value_mem=1;
  292. }
  293. /*FI*/}
  294. /*FI*/}
  295. /*FI*/return R;
  296. }
  297. int rT200static_value(T200 *C){
  298. int R=0;
  299. R=(C)->_static_value_mem;
  300. return R;
  301. }
  302. void rT200fatal_error(/*C*/T0* a1){
  303. rT45fatal_error((T45*)oRBC27eh,a1);
  304. }
  305. void rT200to_runnable_0(T200 *C,T0 * a1){
  306. T0 * _rc=NULL;
  307. T0 * _t=NULL;
  308. C->_current_type=a1;
  309. _t=XrT68to_runnable((C)->_target,a1);
  310. /*IF*/if (!(_t)) {
  311. rT200error(XrT68start_position((C)->_target),(T0 *)ms1119);
  312. }
  313. else {
  314. C->_target=_t;
  315. _rc=XrT58run_class(XrT68result_type((C)->_target));
  316. C->_run_feature=rT260get_rf((T260*)_rc,(C)->_target,(C)->_feature_name);
  317. C->_result_type=XrT261result_type((C)->_run_feature);
  318. /*IF*/if (!((C)->_result_type)) {
  319. /*UT*/(T45*)oRBC27eh;
  320. rT45add_position(XrT261start_position((C)->_run_feature));
  321. rT200error(((T70*)(C)->_feature_name)->_start_position,(T0 *)ms1131);
  322. }
  323. /*FI*/}
  324. /*FI*/}
  325. T0 * rT200to_runnable(T200 *C,T0 * a1){
  326. T0 * R=NULL;
  327. T0 * _a=NULL;
  328. /*IF*/if (!((C)->_current_type)) {
  329. rT200to_runnable_0(C,a1);
  330. _a=rT170to_runnable((T170*)(C)->_arguments,a1);
  331. /*IF*/if (!(_a)) {
  332. rT200error(XrT68start_position(rT200arg1(C)),(T0 *)ms1136);
  333. }
  334. else {
  335. C->_arguments=_a;
  336. }
  337. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  338. rT170match_with((T170*)(C)->_arguments,(C)->_run_feature);
  339. }
  340. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0))&&(XrT58is_like_argument((C)->_result_type))) {
  341. C->_result_type=XrT58run_type(XrT68result_type(rT200arg1(C)));
  342. }
  343. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  344. R=(T0 *)C;
  345. }
  346. /*FI*/}
  347. else {
  348. R=rT200clone(C,(T0 *)C);
  349. /*(IRF3*/(((T200*)R)->_current_type)=(NULL);
  350. /*)*/R=rT200to_runnable((T200*)R,a1);
  351. }
  352. /*FI*/return R;
  353. }
  354. void rT200error(/*C*/T0 * a1,T0* a2){
  355. /*UT*/(T45*)oRBC27eh;
  356. rT45add_position(a1);
  357. rT45error((T45*)oRBC27eh,a2);
  358. }
  359. T0 * rT200add_comment(T200 *C,T0 * a1){
  360. T0 * R=NULL;
  361. /*IF*/if ((!(a1))||((rT59count((T59*)a1))==(0))) {
  362. R=(T0 *)C;
  363. }
  364. else {
  365. {T220 *n=((T220*)new(220));
  366. rT220make(n,(T0 *)C,a1);
  367. R=(T0 *)n;}}
  368. /*FI*/return R;
  369. }
  370. T0 * rT200arg1(T200 *C){
  371. T0 * R=NULL;
  372. R=rT170first((T170*)(C)->_arguments);
  373. return R;
  374. }
  375. T0 * rT200start_position(T200 *C){
  376. T0 * R=NULL;
  377. R=((T70*)(C)->_feature_name)->_start_position;
  378. return R;
  379. }
  380. int rT200use_current(T200 *C){
  381. int R=0;
  382. /*IF*/{/*AT*/R=rT170use_current((T170*)(C)->_arguments);
  383. }
  384. /*FI*//*IF*/if (R) {
  385. }
  386.  else if (XrT68is_current((C)->_target)) {
  387. R=XrT261use_current((C)->_run_feature);
  388. }
  389. else {
  390. R=XrT68use_current((C)->_target);
  391. }
  392. /*FI*/return R;
  393. }
  394. T0* rT200clone(T200 *C,T0* a1){
  395. T0* R=NULL;
  396. /*IF*/if (((int)a1)) {
  397. R=(T0 *)new(a1->id);
  398. AF_1
  399. XrT28copy(R,a1);
  400. AF_0
  401. }
  402. /*FI*/return R;
  403. }
  404. void rT200compile_to_c_old(T200 *C){
  405. XrT68compile_to_c_old((C)->_target);
  406. /*IF*/{/*AT*/rT170compile_to_c_old((T170*)(C)->_arguments);
  407. }
  408. /*FI*/}
  409. void rT200compile_to_c(T200 *C){
  410. T0* _n=NULL;
  411. T0 * _dyn_rf=NULL;
  412. T0 * _tt=NULL;
  413. T0* _r=NULL;
  414. _tt=XrT58run_type(XrT68result_type((C)->_target));
  415. _n=XrT67to_string(XrT261name((C)->_run_feature));
  416. /*IF*/if (rT7is_equal((T7*)(T0 *)ms1109,_n)) {
  417. rT40put_is_expanded_type((T40*)oRBC27cpp,_tt);
  418. }
  419.  else if (((XrT58is_expanded(_tt))||(XrT68is_current((C)->_target)))||(XrT68is_manifest_string((C)->_target))) {
  420. rT40push_direct((T40*)oRBC27cpp,(C)->_run_feature,(C)->_target,(C)->_arguments);
  421. XrT261mapping_c((C)->_run_feature);
  422. rT40pop((T40*)oRBC27cpp);
  423. }
  424. else {
  425. _r=((T260*)XrT58run_class(_tt))->_running;
  426. /*IF*/if (!(_r)) {
  427. rT40push_void((T40*)oRBC27cpp,(C)->_run_feature,(C)->_target,(C)->_arguments);
  428. XrT261mapping_c((C)->_run_feature);
  429. rT40pop((T40*)oRBC27cpp);
  430. }
  431.  else if ((rT263count((T263*)_r))==(1)) {
  432. _dyn_rf=rT200dynamic(rT263first((T263*)_r),(C)->_run_feature);
  433. rT40push_check((T40*)oRBC27cpp,_dyn_rf,(C)->_target,(C)->_arguments);
  434. XrT261mapping_c(_dyn_rf);
  435. rT40pop((T40*)oRBC27cpp);
  436. }
  437. else {
  438. rT40use_switch((T40*)oRBC27cpp,(C)->_run_feature,_r,(C)->_target,(C)->_arguments);
  439. }
  440. /*FI*/}
  441. /*FI*/}
  442. int rT200to_integer(T200 *C){
  443. int R=0;
  444. rT200error(rT200start_position(C),(T0 *)ms175);
  445. return R;
  446. }
  447. T0 * rT200dynamic(/*C*/T0 * a1,T0 * a2){
  448. T0 * R=NULL;
  449. T0 * _static=NULL;
  450. T0 * _sta_name=NULL;
  451. T0 * _dyn_name=NULL;
  452. _static=XrT261current_type(a2);
  453. _sta_name=XrT261name(a2);
  454. _dyn_name=rT50name_of((T50*)rT260base_class((T260*)a1),XrT58base_class(_static),_sta_name);
  455. R=rT260get_feature((T260*)a1,_dyn_name);
  456. return R;
  457. }
  458. T0 * rT200written_in(T200 *C){
  459. T0 * R=NULL;
  460. T0 * _sp=NULL;
  461. _sp=rT200start_position(C);
  462. /*IF*/if (((int)_sp)) {
  463. R=((T46*)_sp)->_base_class_name;
  464. }
  465. /*FI*/return R;
  466. }
  467. void rT200copy(T200 *C,T0 * a1){
  468. /*IF*//*AF*//*AE*/
  469. memcpy(C,a1,s[C->id]);
  470. /*FI*/}
  471. int rT200is_a(T200 *C,T0 * a1){
  472. int R=0;
  473. R=XrT58is_a(XrT58run_type((C)->_result_type),XrT58run_type(XrT68result_type(a1)));
  474. /*IF*/if (!(R)) {
  475. /*UT*/(T45*)oRBC27eh;
  476. rT45add_position(rT200start_position(C));
  477. rT200error(XrT68start_position(a1),(T0 *)ms1261);
  478. }
  479. /*FI*/return R;
  480. }
  481. void rT200make_call_1(T200 *C,T0 * a1,T0 * a2,T0 * a3){
  482. C->_target=a1;
  483. C->_feature_name=a2;
  484. C->_arguments=a3;
  485. }
  486. void rT200make(T200 *C,T0 * a1,T0 * a2,T0 * a3){
  487. T0 * _eal=NULL;
  488. /*IF*/if ((!(a1))||(!(a3))) {
  489. /*UT*/(T45*)oRBC27eh;
  490. rT45add_position(a2);
  491. rT200fatal_error((T0 *)ms305);
  492. }
  493. /*FI*/{T70 *n=((T70*)new(70));
  494. rT70make(n,/*(IRF4*/(T0 *)ms106/*)*/,a2);
  495. C->_feature_name=(T0 *)n;}
  496. {T170 *n=((T170*)new(170));
  497. /*(IRF3*/((n)->_list)=(ma(81,0,1,a3));
  498. /*)*/_eal=(T0 *)n;}
  499. rT200make_call_1(C,a1,(C)->_feature_name,_eal);
  500. }
  501. int rT199is_static(T199 *C){
  502. int R=0;
  503. /*IF*/if (XrT58is_boolean(XrT68result_type((C)->_target))) {
  504. /*IF*/if ((XrT68is_static((C)->_target))&&(XrT68is_static(rT199arg1(C)))) {
  505. R=1;
  506. C->_static_value_mem=(XrT68static_value((C)->_target))+(XrT68static_value(rT199arg1(C)));
  507. /*IF*/if (((C)->_static_value_mem)==(2)) {
  508. C->_static_value_mem=1;
  509. }
  510. /*FI*/}
  511. /*FI*/}
  512. /*FI*/return R;
  513. }
  514. int rT199static_value(T199 *C){
  515. int R=0;
  516. R=(C)->_static_value_mem;
  517. return R;
  518. }
  519. void rT199fatal_error(/*C*/T0* a1){
  520. rT45fatal_error((T45*)oRBC27eh,a1);
  521. }
  522. void rT199to_runnable_0(T199 *C,T0 * a1){
  523. T0 * _rc=NULL;
  524. T0 * _t=NULL;
  525. C->_current_type=a1;
  526. _t=XrT68to_runnable((C)->_target,a1);
  527. /*IF*/if (!(_t)) {
  528. rT199error(XrT68start_position((C)->_target),(T0 *)ms1119);
  529. }
  530. else {
  531. C->_target=_t;
  532. _rc=XrT58run_class(XrT68result_type((C)->_target));
  533. C->_run_feature=rT260get_rf((T260*)_rc,(C)->_target,(C)->_feature_name);
  534. C->_result_type=XrT261result_type((C)->_run_feature);
  535. /*IF*/if (!((C)->_result_type)) {
  536. /*UT*/(T45*)oRBC27eh;
  537. rT45add_position(XrT261start_position((C)->_run_feature));
  538. rT199error(((T70*)(C)->_feature_name)->_start_position,(T0 *)ms1131);
  539. }
  540. /*FI*/}
  541. /*FI*/}
  542. T0 * rT199to_runnable(T199 *C,T0 * a1){
  543. T0 * R=NULL;
  544. T0 * _a=NULL;
  545. /*IF*/if (!((C)->_current_type)) {
  546. rT199to_runnable_0(C,a1);
  547. _a=rT170to_runnable((T170*)(C)->_arguments,a1);
  548. /*IF*/if (!(_a)) {
  549. rT199error(XrT68start_position(rT199arg1(C)),(T0 *)ms1136);
  550. }
  551. else {
  552. C->_arguments=_a;
  553. }
  554. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  555. rT170match_with((T170*)(C)->_arguments,(C)->_run_feature);
  556. }
  557. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0))&&(XrT58is_like_argument((C)->_result_type))) {
  558. C->_result_type=XrT58run_type(XrT68result_type(rT199arg1(C)));
  559. }
  560. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  561. R=(T0 *)C;
  562. }
  563. /*FI*/}
  564. else {
  565. R=rT199clone(C,(T0 *)C);
  566. /*(IRF3*/(((T199*)R)->_current_type)=(NULL);
  567. /*)*/R=rT199to_runnable((T199*)R,a1);
  568. }
  569. /*FI*/return R;
  570. }
  571. void rT199error(/*C*/T0 * a1,T0* a2){
  572. /*UT*/(T45*)oRBC27eh;
  573. rT45add_position(a1);
  574. rT45error((T45*)oRBC27eh,a2);
  575. }
  576. T0 * rT199add_comment(T199 *C,T0 * a1){
  577. T0 * R=NULL;
  578. /*IF*/if ((!(a1))||((rT59count((T59*)a1))==(0))) {
  579. R=(T0 *)C;
  580. }
  581. else {
  582. {T220 *n=((T220*)new(220));
  583. rT220make(n,(T0 *)C,a1);
  584. R=(T0 *)n;}}
  585. /*FI*/return R;
  586. }
  587. T0 * rT199arg1(T199 *C){
  588. T0 * R=NULL;
  589. R=rT170first((T170*)(C)->_arguments);
  590. return R;
  591. }
  592. T0 * rT199start_position(T199 *C){
  593. T0 * R=NULL;
  594. R=((T70*)(C)->_feature_name)->_start_position;
  595. return R;
  596. }
  597. int rT199use_current(T199 *C){
  598. int R=0;
  599. /*IF*/{/*AT*/R=rT170use_current((T170*)(C)->_arguments);
  600. }
  601. /*FI*//*IF*/if (R) {
  602. }
  603.  else if (XrT68is_current((C)->_target)) {
  604. R=XrT261use_current((C)->_run_feature);
  605. }
  606. else {
  607. R=XrT68use_current((C)->_target);
  608. }
  609. /*FI*/return R;
  610. }
  611. T0* rT199clone(T199 *C,T0* a1){
  612. T0* R=NULL;
  613. /*IF*/if (((int)a1)) {
  614. R=(T0 *)new(a1->id);
  615. AF_1
  616. XrT28copy(R,a1);
  617. AF_0
  618. }
  619. /*FI*/return R;
  620. }
  621. void rT199compile_to_c_old(T199 *C){
  622. XrT68compile_to_c_old((C)->_target);
  623. /*IF*/{/*AT*/rT170compile_to_c_old((T170*)(C)->_arguments);
  624. }
  625. /*FI*/}
  626. void rT199compile_to_c(T199 *C){
  627. T0* _n=NULL;
  628. T0 * _dyn_rf=NULL;
  629. T0 * _tt=NULL;
  630. T0* _r=NULL;
  631. _tt=XrT58run_type(XrT68result_type((C)->_target));
  632. _n=XrT67to_string(XrT261name((C)->_run_feature));
  633. /*IF*/if (rT7is_equal((T7*)(T0 *)ms1109,_n)) {
  634. rT40put_is_expanded_type((T40*)oRBC27cpp,_tt);
  635. }
  636.  else if (((XrT58is_expanded(_tt))||(XrT68is_current((C)->_target)))||(XrT68is_manifest_string((C)->_target))) {
  637. rT40push_direct((T40*)oRBC27cpp,(C)->_run_feature,(C)->_target,(C)->_arguments);
  638. XrT261mapping_c((C)->_run_feature);
  639. rT40pop((T40*)oRBC27cpp);
  640. }
  641. else {
  642. _r=((T260*)XrT58run_class(_tt))->_running;
  643. /*IF*/if (!(_r)) {
  644. rT40push_void((T40*)oRBC27cpp,(C)->_run_feature,(C)->_target,(C)->_arguments);
  645. XrT261mapping_c((C)->_run_feature);
  646. rT40pop((T40*)oRBC27cpp);
  647. }
  648.  else if ((rT263count((T263*)_r))==(1)) {
  649. _dyn_rf=rT199dynamic(rT263first((T263*)_r),(C)->_run_feature);
  650. rT40push_check((T40*)oRBC27cpp,_dyn_rf,(C)->_target,(C)->_arguments);
  651. XrT261mapping_c(_dyn_rf);
  652. rT40pop((T40*)oRBC27cpp);
  653. }
  654. else {
  655. rT40use_switch((T40*)oRBC27cpp,(C)->_run_feature,_r,(C)->_target,(C)->_arguments);
  656. }
  657. /*FI*/}
  658. /*FI*/}
  659. int rT199to_integer(T199 *C){
  660. int R=0;
  661. rT199error(rT199start_position(C),(T0 *)ms175);
  662. return R;
  663. }
  664. T0 * rT199dynamic(/*C*/T0 * a1,T0 * a2){
  665. T0 * R=NULL;
  666. T0 * _static=NULL;
  667. T0 * _sta_name=NULL;
  668. T0 * _dyn_name=NULL;
  669. _static=XrT261current_type(a2);
  670. _sta_name=XrT261name(a2);
  671. _dyn_name=rT50name_of((T50*)rT260base_class((T260*)a1),XrT58base_class(_static),_sta_name);
  672. R=rT260get_feature((T260*)a1,_dyn_name);
  673. return R;
  674. }
  675. T0 * rT199written_in(T199 *C){
  676. T0 * R=NULL;
  677. T0 * _sp=NULL;
  678. _sp=rT199start_position(C);
  679. /*IF*/if (((int)_sp)) {
  680. R=((T46*)_sp)->_base_class_name;
  681. }
  682. /*FI*/return R;
  683. }
  684. void rT199copy(T199 *C,T0 * a1){
  685. /*IF*//*AF*//*AE*/
  686. memcpy(C,a1,s[C->id]);
  687. /*FI*/}
  688. int rT199is_a(T199 *C,T0 * a1){
  689. int R=0;
  690. R=XrT58is_a(XrT58run_type((C)->_result_type),XrT58run_type(XrT68result_type(a1)));
  691. /*IF*/if (!(R)) {
  692. /*UT*/(T45*)oRBC27eh;
  693. rT45add_position(rT199start_position(C));
  694. rT199error(XrT68start_position(a1),(T0 *)ms1261);
  695. }
  696. /*FI*/return R;
  697. }
  698. void rT199make_call_1(T199 *C,T0 * a1,T0 * a2,T0 * a3){
  699. C->_target=a1;
  700. C->_feature_name=a2;
  701. C->_arguments=a3;
  702. }
  703. void rT199make(T199 *C,T0 * a1,T0 * a2,T0 * a3){
  704. T0 * _eal=NULL;
  705. /*IF*/if ((!(a1))||(!(a3))) {
  706. /*UT*/(T45*)oRBC27eh;
  707. rT45add_position(a2);
  708. rT199fatal_error((T0 *)ms305);
  709. }
  710. /*FI*/{T70 *n=((T70*)new(70));
  711. rT70make(n,/*(IRF4*/(T0 *)ms108/*)*/,a2);
  712. C->_feature_name=(T0 *)n;}
  713. {T170 *n=((T170*)new(170));
  714. /*(IRF3*/((n)->_list)=(ma(81,0,1,a3));
  715. /*)*/_eal=(T0 *)n;}
  716. rT199make_call_1(C,a1,(C)->_feature_name,_eal);
  717. }
  718. int rT198is_static(T198 *C){
  719. int R=0;
  720. /*IF*/if (XrT58is_boolean(XrT68result_type((C)->_target))) {
  721. /*IF*/if ((XrT68is_static((C)->_target))&&(XrT68is_static(rT198arg1(C)))) {
  722. R=1;
  723. C->_static_value_mem=(XrT68static_value((C)->_target))+(XrT68static_value(rT198arg1(C)));
  724. /*IF*/if (((C)->_static_value_mem)==(2)) {
  725. C->_static_value_mem=1;
  726. }
  727. else {
  728. C->_static_value_mem=0;
  729. }
  730. /*FI*/}
  731. /*FI*/}
  732. /*FI*/return R;
  733. }
  734. int rT198static_value(T198 *C){
  735. int R=0;
  736. R=(C)->_static_value_mem;
  737. return R;
  738. }
  739. void rT198fatal_error(/*C*/T0* a1){
  740. rT45fatal_error((T45*)oRBC27eh,a1);
  741. }
  742. void rT198to_runnable_0(T198 *C,T0 * a1){
  743. T0 * _rc=NULL;
  744. T0 * _t=NULL;
  745. C->_current_type=a1;
  746. _t=XrT68to_runnable((C)->_target,a1);
  747. /*IF*/if (!(_t)) {
  748. rT198error(XrT68start_position((C)->_target),(T0 *)ms1119);
  749. }
  750. else {
  751. C->_target=_t;
  752. _rc=XrT58run_class(XrT68result_type((C)->_target));
  753. C->_run_feature=rT260get_rf((T260*)_rc,(C)->_target,(C)->_feature_name);
  754. C->_result_type=XrT261result_type((C)->_run_feature);
  755. /*IF*/if (!((C)->_result_type)) {
  756. /*UT*/(T45*)oRBC27eh;
  757. rT45add_position(XrT261start_position((C)->_run_feature));
  758. rT198error(((T70*)(C)->_feature_name)->_start_position,(T0 *)ms1131);
  759. }
  760. /*FI*/}
  761. /*FI*/}
  762. T0 * rT198to_runnable(T198 *C,T0 * a1){
  763. T0 * R=NULL;
  764. T0 * _a=NULL;
  765. /*IF*/if (!((C)->_current_type)) {
  766. rT198to_runnable_0(C,a1);
  767. _a=rT170to_runnable((T170*)(C)->_arguments,a1);
  768. /*IF*/if (!(_a)) {
  769. rT198error(XrT68start_position(rT198arg1(C)),(T0 *)ms1136);
  770. }
  771. else {
  772. C->_arguments=_a;
  773. }
  774. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  775. rT170match_with((T170*)(C)->_arguments,(C)->_run_feature);
  776. }
  777. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0))&&(XrT58is_like_argument((C)->_result_type))) {
  778. C->_result_type=XrT58run_type(XrT68result_type(rT198arg1(C)));
  779. }
  780. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  781. R=(T0 *)C;
  782. }
  783. /*FI*/}
  784. else {
  785. R=rT198clone(C,(T0 *)C);
  786. /*(IRF3*/(((T198*)R)->_current_type)=(NULL);
  787. /*)*/R=rT198to_runnable((T198*)R,a1);
  788. }
  789. /*FI*/return R;
  790. }
  791. void rT198error(/*C*/T0 * a1,T0* a2){
  792. /*UT*/(T45*)oRBC27eh;
  793. rT45add_position(a1);
  794. rT45error((T45*)oRBC27eh,a2);
  795. }
  796. T0 * rT198add_comment(T198 *C,T0 * a1){
  797. T0 * R=NULL;
  798. /*IF*/if ((!(a1))||((rT59count((T59*)a1))==(0))) {
  799. R=(T0 *)C;
  800. }
  801. else {
  802. {T220 *n=((T220*)new(220));
  803. rT220make(n,(T0 *)C,a1);
  804. R=(T0 *)n;}}
  805. /*FI*/return R;
  806. }
  807. T0 * rT198arg1(T198 *C){
  808. T0 * R=NULL;
  809. R=rT170first((T170*)(C)->_arguments);
  810. return R;
  811. }
  812. T0 * rT198start_position(T198 *C){
  813. T0 * R=NULL;
  814. R=((T70*)(C)->_feature_name)->_start_position;
  815. return R;
  816. }
  817. int rT198use_current(T198 *C){
  818. int R=0;
  819. /*IF*/{/*AT*/R=rT170use_current((T170*)(C)->_arguments);
  820. }
  821. /*FI*//*IF*/if (R) {
  822. }
  823.  else if (XrT68is_current((C)->_target)) {
  824. R=XrT261use_current((C)->_run_feature);
  825. }
  826. else {
  827. R=XrT68use_current((C)->_target);
  828. }
  829. /*FI*/return R;
  830. }
  831. T0* rT198clone(T198 *C,T0* a1){
  832. T0* R=NULL;
  833. /*IF*/if (((int)a1)) {
  834. R=(T0 *)new(a1->id);
  835. AF_1
  836. XrT28copy(R,a1);
  837. AF_0
  838. }
  839. /*FI*/return R;
  840. }
  841. void rT198compile_to_c_old(T198 *C){
  842. XrT68compile_to_c_old((C)->_target);
  843. /*IF*/{/*AT*/rT170compile_to_c_old((T170*)(C)->_arguments);
  844. }
  845. /*FI*/}
  846. void rT198compile_to_c(T198 *C){
  847. T0* _n=NULL;
  848. T0 * _dyn_rf=NULL;
  849. T0 * _tt=NULL;
  850. T0* _r=NULL;
  851. _tt=XrT58run_type(XrT68result_type((C)->_target));
  852. _n=XrT67to_string(XrT261name((C)->_run_feature));
  853. /*IF*/if (rT7is_equal((T7*)(T0 *)ms1109,_n)) {
  854. rT40put_is_expanded_type((T40*)oRBC27cpp,_tt);
  855. }
  856.  else if (((XrT58is_expanded(_tt))||(XrT68is_current((C)->_target)))||(XrT68is_manifest_string((C)->_target))) {
  857. rT40push_direct((T40*)oRBC27cpp,(C)->_run_feature,(C)->_target,(C)->_arguments);
  858. XrT261mapping_c((C)->_run_feature);
  859. rT40pop((T40*)oRBC27cpp);
  860. }
  861. else {
  862. _r=((T260*)XrT58run_class(_tt))->_running;
  863. /*IF*/if (!(_r)) {
  864. rT40push_void((T40*)oRBC27cpp,(C)->_run_feature,(C)->_target,(C)->_arguments);
  865. XrT261mapping_c((C)->_run_feature);
  866. rT40pop((T40*)oRBC27cpp);
  867. }
  868.  else if ((rT263count((T263*)_r))==(1)) {
  869. _dyn_rf=rT198dynamic(rT263first((T263*)_r),(C)->_run_feature);
  870. rT40push_check((T40*)oRBC27cpp,_dyn_rf,(C)->_target,(C)->_arguments);
  871. XrT261mapping_c(_dyn_rf);
  872. rT40pop((T40*)oRBC27cpp);
  873. }
  874. else {
  875. rT40use_switch((T40*)oRBC27cpp,(C)->_run_feature,_r,(C)->_target,(C)->_arguments);
  876. }
  877. /*FI*/}
  878. /*FI*/}
  879. int rT198to_integer(T198 *C){
  880. int R=0;
  881. rT198error(rT198start_position(C),(T0 *)ms175);
  882. return R;
  883. }
  884. T0 * rT198dynamic(/*C*/T0 * a1,T0 * a2){
  885. T0 * R=NULL;
  886. T0 * _static=NULL;
  887. T0 * _sta_name=NULL;
  888. T0 * _dyn_name=NULL;
  889. _static=XrT261current_type(a2);
  890. _sta_name=XrT261name(a2);
  891. _dyn_name=rT50name_of((T50*)rT260base_class((T260*)a1),XrT58base_class(_static),_sta_name);
  892. R=rT260get_feature((T260*)a1,_dyn_name);
  893. return R;
  894. }
  895. T0 * rT198written_in(T198 *C){
  896. T0 * R=NULL;
  897. T0 * _sp=NULL;
  898. _sp=rT198start_position(C);
  899. /*IF*/if (((int)_sp)) {
  900. R=((T46*)_sp)->_base_class_name;
  901. }
  902. /*FI*/return R;
  903. }
  904. void rT198copy(T198 *C,T0 * a1){
  905. /*IF*//*AF*//*AE*/
  906. memcpy(C,a1,s[C->id]);
  907. /*FI*/}
  908. int rT198is_a(T198 *C,T0 * a1){
  909. int R=0;
  910. R=XrT58is_a(XrT58run_type((C)->_result_type),XrT58run_type(XrT68result_type(a1)));
  911. /*IF*/if (!(R)) {
  912. /*UT*/(T45*)oRBC27eh;
  913. rT45add_position(rT198start_position(C));
  914. rT198error(XrT68start_position(a1),(T0 *)ms1261);
  915. }
  916. /*FI*/return R;
  917. }
  918. void rT198make_call_1(T198 *C,T0 * a1,T0 * a2,T0 * a3){
  919. C->_target=a1;
  920. C->_feature_name=a2;
  921. C->_arguments=a3;
  922. }
  923. void rT198make(T198 *C,T0 * a1,T0 * a2,T0 * a3){
  924. T0 * _eal=NULL;
  925. /*IF*/if ((!(a1))||(!(a3))) {
  926. /*UT*/(T45*)oRBC27eh;
  927. rT45add_position(a2);
  928. rT198fatal_error((T0 *)ms305);
  929. }
  930. /*FI*/{T70 *n=((T70*)new(70));
  931. rT70make(n,/*(IRF4*/(T0 *)ms103/*)*/,a2);
  932. C->_feature_name=(T0 *)n;}
  933. {T170 *n=((T170*)new(170));
  934. /*(IRF3*/((n)->_list)=(ma(81,0,1,a3));
  935. /*)*/_eal=(T0 *)n;}
  936. rT198make_call_1(C,a1,(C)->_feature_name,_eal);
  937. }
  938. int rT197is_static(T197 *C){
  939. int R=0;
  940. /*IF*/if (XrT58is_boolean(XrT68result_type((C)->_target))) {
  941. /*IF*/if ((XrT68is_static((C)->_target))&&(XrT68is_static(rT197arg1(C)))) {
  942. R=1;
  943. C->_static_value_mem=(XrT68static_value((C)->_target))+(XrT68static_value(rT197arg1(C)));
  944. /*IF*/if (((C)->_static_value_mem)==(2)) {
  945. C->_static_value_mem=1;
  946. }
  947. else {
  948. C->_static_value_mem=0;
  949. }
  950. /*FI*/}
  951. /*FI*/}
  952. /*FI*/return R;
  953. }
  954. int rT197static_value(T197 *C){
  955. int R=0;
  956. R=(C)->_static_value_mem;
  957. return R;
  958. }
  959. void rT197fatal_error(/*C*/T0* a1){
  960. rT45fatal_error((T45*)oRBC27eh,a1);
  961. }
  962. void rT197to_runnable_0(T197 *C,T0 * a1){
  963. T0 * _rc=NULL;
  964. T0 * _t=NULL;
  965. C->_current_type=a1;
  966. _t=XrT68to_runnable((C)->_target,a1);
  967. /*IF*/if (!(_t)) {
  968. rT197error(XrT68start_position((C)->_target),(T0 *)ms1119);
  969. }
  970. else {
  971. C->_target=_t;
  972. _rc=XrT58run_class(XrT68result_type((C)->_target));
  973. C->_run_feature=rT260get_rf((T260*)_rc,(C)->_target,(C)->_feature_name);
  974. C->_result_type=XrT261result_type((C)->_run_feature);
  975. /*IF*/if (!((C)->_result_type)) {
  976. /*UT*/(T45*)oRBC27eh;
  977. rT45add_position(XrT261start_position((C)->_run_feature));
  978. rT197error(((T70*)(C)->_feature_name)->_start_position,(T0 *)ms1131);
  979. }
  980. /*FI*/}
  981. /*FI*/}
  982. T0 * rT197to_runnable(T197 *C,T0 * a1){
  983. T0 * R=NULL;
  984. T0 * _a=NULL;
  985. /*IF*/if (!((C)->_current_type)) {
  986. rT197to_runnable_0(C,a1);
  987. _a=rT170to_runnable((T170*)(C)->_arguments,a1);
  988. /*IF*/if (!(_a)) {
  989. rT197error(XrT68start_position(rT197arg1(C)),(T0 *)ms1136);
  990. }
  991. else {
  992. C->_arguments=_a;
  993. }
  994. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  995. rT170match_with((T170*)(C)->_arguments,(C)->_run_feature);
  996. }
  997. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0))&&(XrT58is_like_argument((C)->_result_type))) {
  998. C->_result_type=XrT58run_type(XrT68result_type(rT197arg1(C)));
  999. }
  1000. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  1001. R=(T0 *)C;
  1002. }
  1003. /*FI*/}
  1004. else {
  1005. R=rT197clone(C,(T0 *)C);
  1006. /*(IRF3*/(((T197*)R)->_current_type)=(NULL);
  1007. /*)*/R=rT197to_runnable((T197*)R,a1);
  1008. }
  1009. /*FI*/return R;
  1010. }
  1011. void rT197error(/*C*/T0 * a1,T0* a2){
  1012. /*UT*/(T45*)oRBC27eh;
  1013. rT45add_position(a1);
  1014. rT45error((T45*)oRBC27eh,a2);
  1015. }
  1016. T0 * rT197add_comment(T197 *C,T0 * a1){
  1017. T0 * R=NULL;
  1018. /*IF*/if ((!(a1))||((rT59count((T59*)a1))==(0))) {
  1019. R=(T0 *)C;
  1020. }
  1021. else {
  1022. {T220 *n=((T220*)new(220));
  1023. rT220make(n,(T0 *)C,a1);
  1024. R=(T0 *)n;}}
  1025. /*FI*/return R;
  1026. }
  1027. T0 * rT197arg1(T197 *C){
  1028. T0 * R=NULL;
  1029. R=rT170first((T170*)(C)->_arguments);
  1030. return R;
  1031. }
  1032. T0 * rT197start_position(T197 *C){
  1033. T0 * R=NULL;
  1034. R=((T70*)(C)->_feature_name)->_start_position;
  1035. return R;
  1036. }
  1037. int rT197use_current(T197 *C){
  1038. int R=0;
  1039. /*IF*/{/*AT*/R=rT170use_current((T170*)(C)->_arguments);
  1040. }
  1041. /*FI*//*IF*/if (R) {
  1042. }
  1043.  else if (XrT68is_current((C)->_target)) {
  1044. R=XrT261use_current((C)->_run_feature);
  1045. }
  1046. else {
  1047. R=XrT68use_current((C)->_target);
  1048. }
  1049. /*FI*/return R;
  1050. }
  1051. T0* rT197clone(T197 *C,T0* a1){
  1052. T0* R=NULL;
  1053. /*IF*/if (((int)a1)) {
  1054. R=(T0 *)new(a1->id);
  1055. AF_1
  1056. XrT28copy(R,a1);
  1057. AF_0
  1058. }
  1059. /*FI*/return R;
  1060. }
  1061. void rT197compile_to_c_old(T197 *C){
  1062. XrT68compile_to_c_old((C)->_target);
  1063. /*IF*/{/*AT*/rT170compile_to_c_old((T170*)(C)->_arguments);
  1064. }
  1065. /*FI*/}
  1066. void rT197compile_to_c(T197 *C){
  1067. T0* _n=NULL;
  1068. T0 * _dyn_rf=NULL;
  1069. T0 * _tt=NULL;
  1070. T0* _r=NULL;
  1071. _tt=XrT58run_type(XrT68result_type((C)->_target));
  1072. _n=XrT67to_string(XrT261name((C)->_run_feature));
  1073. /*IF*/if (rT7is_equal((T7*)(T0 *)ms1109,_n)) {
  1074. rT40put_is_expanded_type((T40*)oRBC27cpp,_tt);
  1075. }
  1076.  else if (((XrT58is_expanded(_tt))||(XrT68is_current((C)->_target)))||(XrT68is_manifest_string((C)->_target))) {
  1077. rT40push_direct((T40*)oRBC27cpp,(C)->_run_feature,(C)->_target,(C)->_arguments);
  1078. XrT261mapping_c((C)->_run_feature);
  1079. rT40pop((T40*)oRBC27cpp);
  1080. }
  1081. else {
  1082. _r=((T260*)XrT58run_class(_tt))->_running;
  1083. /*IF*/if (!(_r)) {
  1084. rT40push_void((T40*)oRBC27cpp,(C)->_run_feature,(C)->_target,(C)->_arguments);
  1085. XrT261mapping_c((C)->_run_feature);
  1086. rT40pop((T40*)oRBC27cpp);
  1087. }
  1088.  else if ((rT263count((T263*)_r))==(1)) {
  1089. _dyn_rf=rT197dynamic(rT263first((T263*)_r),(C)->_run_feature);
  1090. rT40push_check((T40*)oRBC27cpp,_dyn_rf,(C)->_target,(C)->_arguments);
  1091. XrT261mapping_c(_dyn_rf);
  1092. rT40pop((T40*)oRBC27cpp);
  1093. }
  1094. else {
  1095. rT40use_switch((T40*)oRBC27cpp,(C)->_run_feature,_r,(C)->_target,(C)->_arguments);
  1096. }
  1097. /*FI*/}
  1098. /*FI*/}
  1099. int rT197to_integer(T197 *C){
  1100. int R=0;
  1101. rT197error(rT197start_position(C),(T0 *)ms175);
  1102. return R;
  1103. }
  1104. T0 * rT197dynamic(/*C*/T0 * a1,T0 * a2){
  1105. T0 * R=NULL;
  1106. T0 * _static=NULL;
  1107. T0 * _sta_name=NULL;
  1108. T0 * _dyn_name=NULL;
  1109. _static=XrT261current_type(a2);
  1110. _sta_name=XrT261name(a2);
  1111. _dyn_name=rT50name_of((T50*)rT260base_class((T260*)a1),XrT58base_class(_static),_sta_name);
  1112. R=rT260get_feature((T260*)a1,_dyn_name);
  1113. return R;
  1114. }
  1115. T0 * rT197written_in(T197 *C){
  1116. T0 * R=NULL;
  1117. T0 * _sp=NULL;
  1118. _sp=rT197start_position(C);
  1119. /*IF*/if (((int)_sp)) {
  1120. R=((T46*)_sp)->_base_class_name;
  1121. }
  1122. /*FI*/return R;
  1123. }
  1124. void rT197copy(T197 *C,T0 * a1){
  1125. /*IF*//*AF*//*AE*/
  1126. memcpy(C,a1,s[C->id]);
  1127. /*FI*/}
  1128. int rT197is_a(T197 *C,T0 * a1){
  1129. int R=0;
  1130. R=XrT58is_a(XrT58run_type((C)->_result_type),XrT58run_type(XrT68result_type(a1)));
  1131. /*IF*/if (!(R)) {
  1132. /*UT*/(T45*)oRBC27eh;
  1133. rT45add_position(rT197start_position(C));
  1134. rT197error(XrT68start_position(a1),(T0 *)ms1261);
  1135. }
  1136. /*FI*/return R;
  1137. }
  1138. void rT197make_call_1(T197 *C,T0 * a1,T0 * a2,T0 * a3){
  1139. C->_target=a1;
  1140. C->_feature_name=a2;
  1141. C->_arguments=a3;
  1142. }
  1143. void rT197make(T197 *C,T0 * a1,T0 * a2,T0 * a3){
  1144. T0 * _eal=NULL;
  1145. /*IF*/if ((!(a1))||(!(a3))) {
  1146. /*UT*/(T45*)oRBC27eh;
  1147. rT45add_position(a2);
  1148. rT197fatal_error((T0 *)ms305);
  1149. }
  1150. /*FI*/{T70 *n=((T70*)new(70));
  1151. rT70make(n,/*(IRF4*/(T0 *)ms105/*)*/,a2);
  1152. C->_feature_name=(T0 *)n;}
  1153. {T170 *n=((T170*)new(170));
  1154. /*(IRF3*/((n)->_list)=(ma(81,0,1,a3));
  1155. /*)*/_eal=(T0 *)n;}
  1156. rT197make_call_1(C,a1,(C)->_feature_name,_eal);
  1157. }
  1158. int rT196is_static(T196 *C){
  1159. int R=0;
  1160. /*IF*/if (XrT58is_integer(XrT68result_type((C)->_target))) {
  1161. /*IF*/if ((XrT68is_static((C)->_target))&&(XrT68is_static(rT196arg1(C)))) {
  1162. R=1;
  1163. /*IF*/if ((XrT68static_value((C)->_target))>(XrT68static_value(rT196arg1(C)))) {
  1164. C->_static_value_mem=1;
  1165. }
  1166. else {
  1167. C->_static_value_mem=0;
  1168. }
  1169. /*FI*/}
  1170. /*FI*/}
  1171. /*FI*/return R;
  1172. }
  1173. int rT196static_value(T196 *C){
  1174. int R=0;
  1175. R=(C)->_static_value_mem;
  1176. return R;
  1177. }
  1178. void rT196fatal_error(/*C*/T0* a1){
  1179. rT45fatal_error((T45*)oRBC27eh,a1);
  1180. }
  1181. void rT196to_runnable_0(T196 *C,T0 * a1){
  1182. T0 * _rc=NULL;
  1183. T0 * _t=NULL;
  1184. C->_current_type=a1;
  1185. _t=XrT68to_runnable((C)->_target,a1);
  1186. /*IF*/if (!(_t)) {
  1187. rT196error(XrT68start_position((C)->_target),(T0 *)ms1119);
  1188. }
  1189. else {
  1190. C->_target=_t;
  1191. _rc=XrT58run_class(XrT68result_type((C)->_target));
  1192. C->_run_feature=rT260get_rf((T260*)_rc,(C)->_target,(C)->_feature_name);
  1193. C->_result_type=XrT261result_type((C)->_run_feature);
  1194. /*IF*/if (!((C)->_result_type)) {
  1195. /*UT*/(T45*)oRBC27eh;
  1196. rT45add_position(XrT261start_position((C)->_run_feature));
  1197. rT196error(((T70*)(C)->_feature_name)->_start_position,(T0 *)ms1131);
  1198. }
  1199. /*FI*/}
  1200. /*FI*/}
  1201. T0 * rT196to_runnable(T196 *C,T0 * a1){
  1202. T0 * R=NULL;
  1203. T0 * _a=NULL;
  1204. /*IF*/if (!((C)->_current_type)) {
  1205. rT196to_runnable_0(C,a1);
  1206. _a=rT170to_runnable((T170*)(C)->_arguments,a1);
  1207. /*IF*/if (!(_a)) {
  1208. rT196error(XrT68start_position(rT196arg1(C)),(T0 *)ms1136);
  1209. }
  1210. else {
  1211. C->_arguments=_a;
  1212. }
  1213. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  1214. rT170match_with((T170*)(C)->_arguments,(C)->_run_feature);
  1215. }
  1216. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0))&&(XrT58is_like_argument((C)->_result_type))) {
  1217. C->_result_type=XrT58run_type(XrT68result_type(rT196arg1(C)));
  1218. }
  1219. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  1220. R=(T0 *)C;
  1221. }
  1222. /*FI*/}
  1223. else {
  1224. R=rT196clone(C,(T0 *)C);
  1225. /*(IRF3*/(((T196*)R)->_current_type)=(NULL);
  1226. /*)*/R=rT196to_runnable((T196*)R,a1);
  1227. }
  1228. /*FI*/return R;
  1229. }
  1230. void rT196error(/*C*/T0 * a1,T0* a2){
  1231. /*UT*/(T45*)oRBC27eh;
  1232. rT45add_position(a1);
  1233. rT45error((T45*)oRBC27eh,a2);
  1234. }
  1235. T0 * rT196add_comment(T196 *C,T0 * a1){
  1236. T0 * R=NULL;
  1237. /*IF*/if ((!(a1))||((rT59count((T59*)a1))==(0))) {
  1238. R=(T0 *)C;
  1239. }
  1240. else {
  1241. {T220 *n=((T220*)new(220));
  1242. rT220make(n,(T0 *)C,a1);
  1243. R=(T0 *)n;}}
  1244. /*FI*/return R;
  1245. }
  1246. T0 * rT196arg1(T196 *C){
  1247. T0 * R=NULL;
  1248. R=rT170first((T170*)(C)->_arguments);
  1249. return R;
  1250. }
  1251. T0 * rT196start_position(T196 *C){
  1252. T0 * R=NULL;
  1253. R=((T70*)(C)->_feature_name)->_start_position;
  1254. return R;
  1255. }
  1256. int rT196use_current(T196 *C){
  1257. int R=0;
  1258. /*IF*/{/*AT*/R=rT170use_current((T170*)(C)->_arguments);
  1259. }
  1260. /*FI*//*IF*/if (R) {
  1261. }
  1262.  else if (XrT68is_current((C)->_target)) {
  1263. R=XrT261use_current((C)->_run_feature);
  1264. }
  1265. else {
  1266. R=XrT68use_current((C)->_target);
  1267. }
  1268. /*FI*/return R;
  1269. }
  1270. T0* rT196clone(T196 *C,T0* a1){
  1271. T0* R=NULL;
  1272. /*IF*/if (((int)a1)) {
  1273. R=(T0 *)new(a1->id);
  1274. AF_1
  1275. XrT28copy(R,a1);
  1276. AF_0
  1277. }
  1278. /*FI*/return R;
  1279. }
  1280. void rT196compile_to_c_old(T196 *C){
  1281. XrT68compile_to_c_old((C)->_target);
  1282. /*IF*/{/*AT*/rT170compile_to_c_old((T170*)(C)->_arguments);
  1283. }
  1284. /*FI*/}
  1285. void rT196compile_to_c(T196 *C){
  1286. T0* _n=NULL;
  1287. T0 * _dyn_rf=NULL;
  1288. T0 * _tt=NULL;
  1289. T0* _r=NULL;
  1290. _tt=XrT58run_type(XrT68result_type((C)->_target));
  1291. _n=XrT67to_string(XrT261name((C)->_run_feature));
  1292. /*IF*/if (rT7is_equal((T7*)(T0 *)ms1109,_n)) {
  1293. rT40put_is_expanded_type((T40*)oRBC27cpp,_tt);
  1294. }
  1295.  else if (((XrT58is_expanded(_tt))||(XrT68is_current((C)->_target)))||(XrT68is_manifest_string((C)->_target))) {
  1296. rT40push_direct((T40*)oRBC27cpp,(C)->_run_feature,(C)->_target,(C)->_arguments);
  1297. XrT261mapping_c((C)->_run_feature);
  1298. rT40pop((T40*)oRBC27cpp);
  1299. }
  1300. else {
  1301. _r=((T260*)XrT58run_class(_tt))->_running;
  1302. /*IF*/if (!(_r)) {
  1303. rT40push_void((T40*)oRBC27cpp,(C)->_run_feature,(C)->_target,(C)->_arguments);
  1304. XrT261mapping_c((C)->_run_feature);
  1305. rT40pop((T40*)oRBC27cpp);
  1306. }
  1307.  else if ((rT263count((T263*)_r))==(1)) {
  1308. _dyn_rf=rT196dynamic(rT263first((T263*)_r),(C)->_run_feature);
  1309. rT40push_check((T40*)oRBC27cpp,_dyn_rf,(C)->_target,(C)->_arguments);
  1310. XrT261mapping_c(_dyn_rf);
  1311. rT40pop((T40*)oRBC27cpp);
  1312. }
  1313. else {
  1314. rT40use_switch((T40*)oRBC27cpp,(C)->_run_feature,_r,(C)->_target,(C)->_arguments);
  1315. }
  1316. /*FI*/}
  1317. /*FI*/}
  1318. int rT196to_integer(T196 *C){
  1319. int R=0;
  1320. rT196error(rT196start_position(C),(T0 *)ms175);
  1321. return R;
  1322. }
  1323. T0 * rT196dynamic(/*C*/T0 * a1,T0 * a2){
  1324. T0 * R=NULL;
  1325. T0 * _static=NULL;
  1326. T0 * _sta_name=NULL;
  1327. T0 * _dyn_name=NULL;
  1328. _static=XrT261current_type(a2);
  1329. _sta_name=XrT261name(a2);
  1330. _dyn_name=rT50name_of((T50*)rT260base_class((T260*)a1),XrT58base_class(_static),_sta_name);
  1331. R=rT260get_feature((T260*)a1,_dyn_name);
  1332. return R;
  1333. }
  1334. T0 * rT196written_in(T196 *C){
  1335. T0 * R=NULL;
  1336. T0 * _sp=NULL;
  1337. _sp=rT196start_position(C);
  1338. /*IF*/if (((int)_sp)) {
  1339. R=((T46*)_sp)->_base_class_name;
  1340. }
  1341. /*FI*/return R;
  1342. }
  1343. void rT196copy(T196 *C,T0 * a1){
  1344. /*IF*//*AF*//*AE*/
  1345. memcpy(C,a1,s[C->id]);
  1346. /*FI*/}
  1347. int rT196is_a(T196 *C,T0 * a1){
  1348. int R=0;
  1349. R=XrT58is_a(XrT58run_type((C)->_result_type),XrT58run_type(XrT68result_type(a1)));
  1350. /*IF*/if (!(R)) {
  1351. /*UT*/(T45*)oRBC27eh;
  1352. rT45add_position(rT196start_position(C));
  1353. rT196error(XrT68start_position(a1),(T0 *)ms1261);
  1354. }
  1355. /*FI*/return R;
  1356. }
  1357. void rT196make_call_1(T196 *C,T0 * a1,T0 * a2,T0 * a3){
  1358. C->_target=a1;
  1359. C->_feature_name=a2;
  1360. C->_arguments=a3;
  1361. }
  1362. void rT196make(T196 *C,T0 * a1,T0 * a2,T0 * a3){
  1363. T0 * _eal=NULL;
  1364. /*IF*/if ((!(a1))||(!(a3))) {
  1365. /*UT*/(T45*)oRBC27eh;
  1366. rT45add_position(a2);
  1367. rT196fatal_error((T0 *)ms305);
  1368. }
  1369. /*FI*/{T70 *n=((T70*)new(70));
  1370. rT70make(n,(T0 *)ms324,a2);
  1371. C->_feature_name=(T0 *)n;}
  1372. {T170 *n=((T170*)new(170));
  1373. /*(IRF3*/((n)->_list)=(ma(81,0,1,a3));
  1374. /*)*/_eal=(T0 *)n;}
  1375. rT196make_call_1(C,a1,(C)->_feature_name,_eal);
  1376. }
  1377. int rT195is_static(T195 *C){
  1378. int R=0;
  1379. /*IF*/if (XrT58is_integer(XrT68result_type((C)->_target))) {
  1380. /*IF*/if ((XrT68is_static((C)->_target))&&(XrT68is_static(rT195arg1(C)))) {
  1381. R=1;
  1382. /*IF*/if ((XrT68static_value((C)->_target))>=(XrT68static_value(rT195arg1(C)))) {
  1383. C->_static_value_mem=1;
  1384. }
  1385. else {
  1386. C->_static_value_mem=0;
  1387. }
  1388. /*FI*/}
  1389. /*FI*/}
  1390. /*FI*/return R;
  1391. }
  1392. int rT195static_value(T195 *C){
  1393. int R=0;
  1394. R=(C)->_static_value_mem;
  1395. return R;
  1396. }
  1397. void rT195fatal_error(/*C*/T0* a1){
  1398. rT45fatal_error((T45*)oRBC27eh,a1);
  1399. }
  1400. void rT195to_runnable_0(T195 *C,T0 * a1){
  1401. T0 * _rc=NULL;
  1402. T0 * _t=NULL;
  1403. C->_current_type=a1;
  1404. _t=XrT68to_runnable((C)->_target,a1);
  1405. /*IF*/if (!(_t)) {
  1406. rT195error(XrT68start_position((C)->_target),(T0 *)ms1119);
  1407. }
  1408. else {
  1409. C->_target=_t;
  1410. _rc=XrT58run_class(XrT68result_type((C)->_target));
  1411. C->_run_feature=rT260get_rf((T260*)_rc,(C)->_target,(C)->_feature_name);
  1412. C->_result_type=XrT261result_type((C)->_run_feature);
  1413. /*IF*/if (!((C)->_result_type)) {
  1414. /*UT*/(T45*)oRBC27eh;
  1415. rT45add_position(XrT261start_position((C)->_run_feature));
  1416. rT195error(((T70*)(C)->_feature_name)->_start_position,(T0 *)ms1131);
  1417. }
  1418. /*FI*/}
  1419. /*FI*/}
  1420. T0 * rT195to_runnable(T195 *C,T0 * a1){
  1421. T0 * R=NULL;
  1422. T0 * _a=NULL;
  1423. /*IF*/if (!((C)->_current_type)) {
  1424. rT195to_runnable_0(C,a1);
  1425. _a=rT170to_runnable((T170*)(C)->_arguments,a1);
  1426. /*IF*/if (!(_a)) {
  1427. rT195error(XrT68start_position(rT195arg1(C)),(T0 *)ms1136);
  1428. }
  1429. else {
  1430. C->_arguments=_a;
  1431. }
  1432. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  1433. rT170match_with((T170*)(C)->_arguments,(C)->_run_feature);
  1434. }
  1435. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0))&&(XrT58is_like_argument((C)->_result_type))) {
  1436. C->_result_type=XrT58run_type(XrT68result_type(rT195arg1(C)));
  1437. }
  1438. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  1439. R=(T0 *)C;
  1440. }
  1441. /*FI*/}
  1442. else {
  1443. R=rT195clone(C,(T0 *)C);
  1444. /*(IRF3*/(((T195*)R)->_current_type)=(NULL);
  1445. /*)*/R=rT195to_runnable((T195*)R,a1);
  1446. }
  1447. /*FI*/return R;
  1448. }
  1449. void rT195error(/*C*/T0 * a1,T0* a2){
  1450. /*UT*/(T45*)oRBC27eh;
  1451. rT45add_position(a1);
  1452. rT45error((T45*)oRBC27eh,a2);
  1453. }
  1454. T0 * rT195add_comment(T195 *C,T0 * a1){
  1455. T0 * R=NULL;
  1456. /*IF*/if ((!(a1))||((rT59count((T59*)a1))==(0))) {
  1457. R=(T0 *)C;
  1458. }
  1459. else {
  1460. {T220 *n=((T220*)new(220));
  1461. rT220make(n,(T0 *)C,a1);
  1462. R=(T0 *)n;}}
  1463. /*FI*/return R;
  1464. }
  1465. T0 * rT195arg1(T195 *C){
  1466. T0 * R=NULL;
  1467. R=rT170first((T170*)(C)->_arguments);
  1468. return R;
  1469. }
  1470. T0 * rT195start_position(T195 *C){
  1471. T0 * R=NULL;
  1472. R=((T70*)(C)->_feature_name)->_start_position;
  1473. return R;
  1474. }
  1475. int rT195use_current(T195 *C){
  1476. int R=0;
  1477. /*IF*/{/*AT*/R=rT170use_current((T170*)(C)->_arguments);
  1478. }
  1479. /*FI*//*IF*/if (R) {
  1480. }
  1481.  else if (XrT68is_current((C)->_target)) {
  1482. R=XrT261use_current((C)->_run_feature);
  1483. }
  1484. else {
  1485. R=XrT68use_current((C)->_target);
  1486. }
  1487. /*FI*/return R;
  1488. }
  1489. T0* rT195clone(T195 *C,T0* a1){
  1490. T0* R=NULL;
  1491. /*IF*/if (((int)a1)) {
  1492. R=(T0 *)new(a1->id);
  1493. AF_1
  1494. XrT28copy(R,a1);
  1495. AF_0
  1496. }
  1497. /*FI*/return R;
  1498. }
  1499. void rT195compile_to_c_old(T195 *C){
  1500. XrT68compile_to_c_old((C)->_target);
  1501. /*IF*/{/*AT*/rT170compile_to_c_old((T170*)(C)->_arguments);
  1502. }
  1503. /*FI*/}
  1504. void rT195compile_to_c(T195 *C){
  1505. T0* _n=NULL;
  1506. T0 * _dyn_rf=NULL;
  1507. T0 * _tt=NULL;
  1508. T0* _r=NULL;
  1509. _tt=XrT58run_type(XrT68result_type((C)->_target));
  1510. _n=XrT67to_string(XrT261name((C)->_run_feature));
  1511. /*IF*/if (rT7is_equal((T7*)(T0 *)ms1109,_n)) {
  1512. rT40put_is_expanded_type((T40*)oRBC27cpp,_tt);
  1513. }
  1514.  else if (((XrT58is_expanded(_tt))||(XrT68is_current((C)->_target)))||(XrT68is_manifest_string((C)->_target))) {
  1515. rT40push_direct((T40*)oRBC27cpp,(C)->_run_feature,(C)->_target,(C)->_arguments);
  1516. XrT261mapping_c((C)->_run_feature);
  1517. rT40pop((T40*)oRBC27cpp);
  1518. }
  1519. else {
  1520. _r=((T260*)XrT58run_class(_tt))->_running;
  1521. /*IF*/if (!(_r)) {
  1522. rT40push_void((T40*)oRBC27cpp,(C)->_run_feature,(C)->_target,(C)->_arguments);
  1523. XrT261mapping_c((C)->_run_feature);
  1524. rT40pop((T40*)oRBC27cpp);
  1525. }
  1526.  else if ((rT263count((T263*)_r))==(1)) {
  1527. _dyn_rf=rT195dynamic(rT263first((T263*)_r),(C)->_run_feature);
  1528. rT40push_check((T40*)oRBC27cpp,_dyn_rf,(C)->_target,(C)->_arguments);
  1529. XrT261mapping_c(_dyn_rf);
  1530. rT40pop((T40*)oRBC27cpp);
  1531. }
  1532. else {
  1533. rT40use_switch((T40*)oRBC27cpp,(C)->_run_feature,_r,(C)->_target,(C)->_arguments);
  1534. }
  1535. /*FI*/}
  1536. /*FI*/}
  1537. int rT195to_integer(T195 *C){
  1538. int R=0;
  1539. rT195error(rT195start_position(C),(T0 *)ms175);
  1540. return R;
  1541. }
  1542. T0 * rT195dynamic(/*C*/T0 * a1,T0 * a2){
  1543. T0 * R=NULL;
  1544. T0 * _static=NULL;
  1545. T0 * _sta_name=NULL;
  1546. T0 * _dyn_name=NULL;
  1547. _static=XrT261current_type(a2);
  1548. _sta_name=XrT261name(a2);
  1549. _dyn_name=rT50name_of((T50*)rT260base_class((T260*)a1),XrT58base_class(_static),_sta_name);
  1550. R=rT260get_feature((T260*)a1,_dyn_name);
  1551. return R;
  1552. }
  1553. T0 * rT195written_in(T195 *C){
  1554. T0 * R=NULL;
  1555. T0 * _sp=NULL;
  1556. _sp=rT195start_position(C);
  1557. /*IF*/if (((int)_sp)) {
  1558. R=((T46*)_sp)->_base_class_name;
  1559. }
  1560. /*FI*/return R;
  1561. }
  1562. void rT195copy(T195 *C,T0 * a1){
  1563. /*IF*//*AF*//*AE*/
  1564. memcpy(C,a1,s[C->id]);
  1565. /*FI*/}
  1566. int rT195is_a(T195 *C,T0 * a1){
  1567. int R=0;
  1568. R=XrT58is_a(XrT58run_type((C)->_result_type),XrT58run_type(XrT68result_type(a1)));
  1569. /*IF*/if (!(R)) {
  1570. /*UT*/(T45*)oRBC27eh;
  1571. rT45add_position(rT195start_position(C));
  1572. rT195error(XrT68start_position(a1),(T0 *)ms1261);
  1573. }
  1574. /*FI*/return R;
  1575. }
  1576. void rT195make_call_1(T195 *C,T0 * a1,T0 * a2,T0 * a3){
  1577. C->_target=a1;
  1578. C->_feature_name=a2;
  1579. C->_arguments=a3;
  1580. }
  1581. void rT195make(T195 *C,T0 * a1,T0 * a2,T0 * a3){
  1582. T0 * _eal=NULL;
  1583. /*IF*/if ((!(a1))||(!(a3))) {
  1584. /*UT*/(T45*)oRBC27eh;
  1585. rT45add_position(a2);
  1586. rT195fatal_error((T0 *)ms305);
  1587. }
  1588. /*FI*/{T70 *n=((T70*)new(70));
  1589. rT70make(n,(T0 *)ms320,a2);
  1590. C->_feature_name=(T0 *)n;}
  1591. {T170 *n=((T170*)new(170));
  1592. /*(IRF3*/((n)->_list)=(ma(81,0,1,a3));
  1593. /*)*/_eal=(T0 *)n;}
  1594. rT195make_call_1(C,a1,(C)->_feature_name,_eal);
  1595. }
  1596. int rT194is_static(T194 *C){
  1597. int R=0;
  1598. /*IF*/if (XrT58is_integer(XrT68result_type((C)->_target))) {
  1599. /*IF*/if ((XrT68is_static((C)->_target))&&(XrT68is_static(rT194arg1(C)))) {
  1600. R=1;
  1601. /*IF*/if ((XrT68static_value((C)->_target))<(XrT68static_value(rT194arg1(C)))) {
  1602. C->_static_value_mem=1;
  1603. }
  1604. else {
  1605. C->_static_value_mem=0;
  1606. }
  1607. /*FI*/}
  1608. /*FI*/}
  1609. /*FI*/return R;
  1610. }
  1611. int rT194static_value(T194 *C){
  1612. int R=0;
  1613. R=(C)->_static_value_mem;
  1614. return R;
  1615. }
  1616. void rT194fatal_error(/*C*/T0* a1){
  1617. rT45fatal_error((T45*)oRBC27eh,a1);
  1618. }
  1619. void rT194to_runnable_0(T194 *C,T0 * a1){
  1620. T0 * _rc=NULL;
  1621. T0 * _t=NULL;
  1622. C->_current_type=a1;
  1623. _t=XrT68to_runnable((C)->_target,a1);
  1624. /*IF*/if (!(_t)) {
  1625. rT194error(XrT68start_position((C)->_target),(T0 *)ms1119);
  1626. }
  1627. else {
  1628. C->_target=_t;
  1629. _rc=XrT58run_class(XrT68result_type((C)->_target));
  1630. C->_run_feature=rT260get_rf((T260*)_rc,(C)->_target,(C)->_feature_name);
  1631. C->_result_type=XrT261result_type((C)->_run_feature);
  1632. /*IF*/if (!((C)->_result_type)) {
  1633. /*UT*/(T45*)oRBC27eh;
  1634. rT45add_position(XrT261start_position((C)->_run_feature));
  1635. rT194error(((T70*)(C)->_feature_name)->_start_position,(T0 *)ms1131);
  1636. }
  1637. /*FI*/}
  1638. /*FI*/}
  1639. T0 * rT194to_runnable(T194 *C,T0 * a1){
  1640. T0 * R=NULL;
  1641. T0 * _a=NULL;
  1642. /*IF*/if (!((C)->_current_type)) {
  1643. rT194to_runnable_0(C,a1);
  1644. _a=rT170to_runnable((T170*)(C)->_arguments,a1);
  1645. /*IF*/if (!(_a)) {
  1646. rT194error(XrT68start_position(rT194arg1(C)),(T0 *)ms1136);
  1647. }
  1648. else {
  1649. C->_arguments=_a;
  1650. }
  1651. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  1652. rT170match_with((T170*)(C)->_arguments,(C)->_run_feature);
  1653. }
  1654. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0))&&(XrT58is_like_argument((C)->_result_type))) {
  1655. C->_result_type=XrT58run_type(XrT68result_type(rT194arg1(C)));
  1656. }
  1657. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  1658. R=(T0 *)C;
  1659. }
  1660. /*FI*/}
  1661. else {
  1662. R=rT194clone(C,(T0 *)C);
  1663. /*(IRF3*/(((T194*)R)->_current_type)=(NULL);
  1664. /*)*/R=rT194to_runnable((T194*)R,a1);
  1665. }
  1666. /*FI*/return R;
  1667. }
  1668.